<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
  <head>
    <title>A canvas shadow createPattern example</title>
    <meta name="DC.creator" content="Kamiel Martinet, http://www.martinet.nl/">
    <meta name="DC.publisher" content="Mozilla Developer Center, http://developer.mozilla.org">

    <script type="text/xaml" id="xaml"><?xml version="1.0"?>
      <Canvas xmlns="http://schemas.microsoft.com/client/2007"></Canvas></script>
<script type="text/javascript" src="../uupaa-excanvas.js"></script>

    <script>
      function boot() {
        draw(document.getElementById('canvas').getContext('2d'));
        draw(document.getElementById('canvas2').getContext('2d'), 1);
        draw(document.getElementById('vmlcanvas').getContext('2d'));
      }
      function draw(ctx, disableShadowBlurAPI) {
        if (disableShadowBlurAPI) {
          ctx.xShadowBlur = 0; // Old Silverlight(ver1, ver2) rendering simulate
        }
          ctx.translate(-10, 5);
          ctx.scale(1.2, 0.8);
          ctx.rotate(5 * Math.PI / 180);

        // create new image object to use as pattern
        var img = new Image();
        img.onload = function(){
          // create pattern
          var ptrn = ctx.createPattern(img,'repeat');
          ctx.shadowBlur = 15;
          ctx.shadowOffsetX = 10;
          ctx.shadowOffsetY = 10;
          ctx.shadowColor = "gray";
          ctx.beginPath();
          ctx.strokeStyle = ptrn;
          ctx.fillStyle = ptrn;
          ctx.lineWidth = 6;
          ctx.strokeRect(10,10,40,40);
          ctx.strokeRect(30,30,40,40);
          ctx.fillRect(50,50,40,40);
          ctx.fillRect(70,70,40,40);
        }
        img.src = 'images/wallpaper.png?' + (new Date).getTime();
      }
    </script>
    <style type="text/css">
      body { margin: 20px; font-family: arial,verdana,helvetica; background: #fff;}
      h1 { font-size: 140%; font-weight:normal; color: #036; border-bottom: 1px solid #ccc; }
      canvas { border: 2px solid #000; float: left; margin-right: 20px; margin-bottom: 20px; }
      pre { float:left; display:block; background: rgb(238,238,238); border: 1px dashed #666; padding: 15px 20px; margin: 0 0 10px 0; }
    </style>
  </head>
  <body onload="uuCanvas.ready(boot);">
    <h1>A canvas <code>shadow createPattern</code> example</h1>
    <div>
      <canvas id="canvas" width="150" height="150"></canvas>
      <canvas id="canvas2" width="150" height="150"></canvas>
      <canvas id="vmlcanvas" class="vml" width="150" height="150"></canvas>
      <pre>
&lt;canvas id="canvas" width="150" height="150"&gt;&lt;/canvas&gt;
&lt;canvas id="canvas2" width="150" height="150"&gt;&lt;/canvas&gt;
&lt;canvas id="vmlcanvas" class="vml" width="150" height="150"&gt;&lt;/canvas&gt;

function boot() {
  draw(document.getElementById('canvas').getContext('2d'));
  draw(document.getElementById('canvas2').getContext('2d'), 1);
  draw(document.getElementById('vmlcanvas').getContext('2d'));
}
function draw(ctx, disableShadowBlurAPI) {
  if (disableShadowBlurAPI) {
    ctx.xShadowBlur = 0; // Old Silverlight(ver1, ver2) rendering simulate
  }
    ctx.translate(-10, 5);
    ctx.scale(1.2, 0.8);
    ctx.rotate(5 * Math.PI / 180);

  // create new image object to use as pattern
  var img = new Image();
  img.onload = function(){
    // create pattern
    var ptrn = ctx.createPattern(img,'repeat');
    ctx.shadowBlur = 15;
    ctx.shadowOffsetX = 10;
    ctx.shadowOffsetY = 10;
    ctx.shadowColor = "gray";
    ctx.beginPath();
    ctx.strokeStyle = ptrn;
    ctx.fillStyle = ptrn;
    ctx.lineWidth = 6;
    ctx.strokeRect(10,10,40,40);
    ctx.strokeRect(30,30,40,40);
    ctx.fillRect(50,50,40,40);
    ctx.fillRect(70,70,40,40);
  }
  img.src = 'images/wallpaper.png?' + (new Date).getTime();
}
      </pre>
    </div>
  </body>
</html>
